FOUNDRY-SN-MAC-VLAN-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Integer32
      FROM SNMPv2-SMI
    MacAddress
      FROM SNMPv2-TC
    InterfaceIndex
      FROM IF-MIB;


snMacVlan MODULE-IDENTITY
    LAST-UPDATED "200706250000Z" -- June 25, 2007
    ORGANIZATION "Foundry Networks, Inc"
    CONTACT-INFO
            ""
    DESCRIPTION
            "Management Information Base module for MAC-based Vlan
            configuration and statistics."
    REVISION     "200706250000Z" -- June 25, 2007
    DESCRIPTION
            ""
   ::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) foundry(1991) products(1) switch(1) snSwitch(3) 30 }


--
-- Mac-based Vlan
--

snMacVlanGlobalObjects OBJECT IDENTIFIER ::= { snMacVlan 1 }
snMacVlanTableObjects  OBJECT IDENTIFIER ::= { snMacVlan 2 }

--
-- MAC-based VLAN Global Scalar Object Section
--

snMacVlanGlobalClearOper OBJECT-TYPE
        SYNTAX     INTEGER { valid(0), clear(1) }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "valid(0) - a SNMP-GET of this mib shows that it is valid command to use. 
                 clear(1) - represents clear operational MAC-based Vlan entry for all ports."
        ::= { snMacVlanGlobalObjects 1 }

snMacVlanGlobalDynConfigState OBJECT-TYPE
        SYNTAX     INTEGER { disabled(0), enabled(1) }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "Enable/disable MAC-based VLAN dynamic activation on the global level."
        ::= { snMacVlanGlobalObjects 2}

--
-- MAC-based VLAN Table Object Section
--

--
-- MAC-based Vlan Port Membership Table
-- Use this table to create or delete a port to a MAC-based Vlan
--

snMacVlanPortMemberTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF SnMacVlanPortMemberEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "MAC-based Vlan port membership table."
        ::= { snMacVlanTableObjects 1 }

snMacVlanPortMemberEntry OBJECT-TYPE
        SYNTAX     SnMacVlanPortMemberEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "An entry of the MAC-based Vlan port membership table."
        INDEX { snMacVlanPortMemberVLanId, snMacVlanPortMemberPortId }
        ::= { snMacVlanPortMemberTable 1 }

SnMacVlanPortMemberEntry ::= SEQUENCE {
    snMacVlanPortMemberVLanId      INTEGER,
    snMacVlanPortMemberPortId      InterfaceIndex,
    snMacVlanPortMemberRowStatus   INTEGER
}

snMacVlanPortMemberVLanId OBJECT-TYPE
        SYNTAX    INTEGER (1..4095)
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "The VLAN identifier (VLAN ID)."
        ::= { snMacVlanPortMemberEntry 1 }

snMacVlanPortMemberPortId OBJECT-TYPE
        SYNTAX     InterfaceIndex
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "The ifIndex which is a member of the MAC-based VLAN."
        ::= { snMacVlanPortMemberEntry 2 }

snMacVlanPortMemberRowStatus OBJECT-TYPE
        SYNTAX     INTEGER {
                other(1),
                valid(2),
                delete(3),
                create(4)
                }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "This object is used to create and
                delete row in the table and control
                if they are used. The values
                that can be written are:
                  delete(3)...deletes the row
                  create(4)...creates a new row

                If the row exists, then a SET with
                value of create(4) returns error
                'wrongValue'. Deleted rows go away
                immediately. The following values
                can be returned on reads:
                  noSuch(0)...no such row
                  other(1)....some other case
                  valid(2)....the row exists and is valid"
        ::= { snMacVlanPortMemberEntry 3 }

--
-- MAC-based VLAN Interface Table Object Section
--

snMacVlanIfTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF SnMacVlanIfEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "MAC-based Vlan Interface table."
        ::= { snMacVlanTableObjects 2 }

snMacVlanIfEntry OBJECT-TYPE
        SYNTAX     SnMacVlanIfEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "An entry in the MAC-based Vlan interface table."
        INDEX { snMacVlanIfIndex }
        ::= { snMacVlanIfTable 1 }

SnMacVlanIfEntry ::= SEQUENCE {
    snMacVlanIfIndex            InterfaceIndex,
    snMacVlanIfEnable              INTEGER,
    snMacVlanIfMaxEntry            Integer32,
    snMacVlanIfClearOper           INTEGER,
        snMacVlanIfClearConfig         INTEGER
}

snMacVlanIfIndex OBJECT-TYPE
        SYNTAX     InterfaceIndex
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "The ifIndex which is a member of the MAC-based VLAN."
        ::= { snMacVlanIfEntry 1 }
        
snMacVlanIfEnable OBJECT-TYPE
        SYNTAX     INTEGER { disabled(0), enabled(1) }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "The administrative status requested by management for
        MAC-based Vlan on this interface.  The value enabled(1) 
        indicates that MAC-based Vlan should be enabled on this interface,
        When disabled(2), MAC-based Vlan is disabled on this interface.
         Enable/disable MAC-based Vlan on this interface."
        ::= { snMacVlanIfEntry 2 }

snMacVlanIfMaxEntry OBJECT-TYPE
        SYNTAX     Integer32 (2..32)
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "The maximum number of allowed and denied MAC address 
                (static and dynamic) that can be leared on an interface. 
                The default value is 2. The value should be between 2 to 32."
        DEFVAL      { 2 }
        ::= { snMacVlanIfEntry 3 }

snMacVlanIfClearOper OBJECT-TYPE
        SYNTAX      INTEGER { valid(0), clear(1) }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
                "valid(0) - a SNMP-GET of this mib shows that it is valid command to use. 
                 clear(1) - represents clearing operational MAC-based Vlan entry for a port."
        ::= { snMacVlanIfEntry 4 }

snMacVlanIfClearConfig OBJECT-TYPE
        SYNTAX      INTEGER { valid(0), clear(1) }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
                "valid(0) - a SNMP-GET of this mib shows that it is valid command to use. 
                 clear(1) - represents clearing configured MAC-based Vlan entry for a port."
        ::= { snMacVlanIfEntry 5 }

--
-- MAC-based Vlan Table Object section
--

snMacBasedVlanTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF SnMacBasedVlanEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "MAC-based Vlan table."
        ::= { snMacVlanTableObjects 3 }

snMacBasedVlanEntry OBJECT-TYPE
        SYNTAX     SnMacBasedVlanEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "An entry in the MAC-based Vlan table."
        INDEX { snMacVlanIfIndex, snMacBasedVlanId, snMacBasedVlanMac }
        ::= { snMacBasedVlanTable 1 }

SnMacBasedVlanEntry ::= SEQUENCE {
    snMacBasedVlanId                     INTEGER,
    snMacBasedVlanMac                   MacAddress,
    snMacBasedVlanPriority              Integer32,
    snMacBasedVlanRowStatus             INTEGER
}

snMacBasedVlanId OBJECT-TYPE
    SYNTAX     INTEGER (1..4095)
        MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The ID of a VLAN of which this port is a mac-vlan-permit 
        member. Port must be untagged. This object return 0 which is 
        an invalid VLAN ID value."
    ::= { snMacBasedVlanEntry 1 }

snMacBasedVlanMac OBJECT-TYPE
        SYNTAX     MacAddress
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "A host source MAC address to be authenticated."
        ::= { snMacBasedVlanEntry 2 }

snMacBasedVlanPriority OBJECT-TYPE
        SYNTAX     Integer32 (0..7)
    MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "The priority of the source MAC address."
        ::= { snMacBasedVlanEntry 3 }

snMacBasedVlanRowStatus OBJECT-TYPE
    SYNTAX     INTEGER {
                 other(1),
                 valid(2),
                 delete(3),
                 create(4)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "This object is used to create and delete row in the
            table and control if they are used. The values that
            can be written are:
            delete(3)...deletes the row
            create(4)...creates a new row

            If the row exists, then a SET with value of create(4)
            returns error 'wrongValue'. Deleted rows go away immediately.
            The following values can be returned on reads:
            noSuchName...no such row
            other(1).....some other cases
            valid(2)....the row exists and is valid"
    ::= { snMacBasedVlanEntry 4 }

END